package org.dromara.common.core.service

import org.dromara.common.core.domain.dto.TaskAssigneeDTO
import org.dromara.common.core.domain.model.TaskAssigneeBody

/**
 * 工作流设计器获取任务执行人
 *
 * @author LikeYouDo
 */
interface TaskAssigneeService {

    /**
     * 查询角色并返回任务指派的列表，支持分页
     *
     * @param taskQuery 查询条件
     * @return 办理人
     */
    fun selectRolesByTaskAssigneeList(taskQuery: TaskAssigneeBody?): TaskAssigneeDTO?

    /**
     * 查询岗位并返回任务指派的列表，支持分页
     *
     * @param taskQuery 查询条件
     * @return 办理人
     */
    fun selectPostsByTaskAssigneeList(taskQuery: TaskAssigneeBody?): TaskAssigneeDTO?

    /**
     * 查询部门并返回任务指派的列表，支持分页
     *
     * @param taskQuery 查询条件
     * @return 办理人
     */
    fun selectDeptsByTaskAssigneeList(taskQuery: TaskAssigneeBody?): TaskAssigneeDTO?

    /**
     * 查询用户并返回任务指派的列表，支持分页
     *
     * @param taskQuery 查询条件
     * @return 办理人
     */
    fun selectUsersByTaskAssigneeList(taskQuery: TaskAssigneeBody?): TaskAssigneeDTO?

}
